package com.auto.survey.activity.monitoring.entity

import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
import androidx.room.PrimaryKey

/**
 * 变形分析实体类，对应数据库中的ATS_DeformationAnalysis表
 * 记录对监测数据进行变形分析的结果
 */
@Entity(
    tableName = "ATS_DeformationAnalysis",
    foreignKeys = [
        ForeignKey(
            entity = ATS_AdjustmentResult::class,
            parentColumns = ["adjustmentId"],
            childColumns = ["adjustmentId"],
            onDelete = ForeignKey.CASCADE
        )
    ],
    indices = [Index(value = ["adjustmentId"])]
)
data class ATS_DeformationAnalysis(
    /**
     * 变形分析ID，主键，自增长
     */
    @PrimaryKey(autoGenerate = true) val analysisId: Int = 0,
    /**
     * 关联的平差结果ID，外键关联ATS_AdjustmentResult表
     */
    val adjustmentId: Int,
    /**
     * 分析时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val analysisTime: String,
    /**
     * 分析方法（时序分析、回归分析等）
     */
    val analysisMethod: String,
    /**
     * 变形趋势（上升、下降、稳定等）
     */
    val deformationTrend: String,
    /**
     * 变形速率（毫米/天）
     */
    val deformationRate: String,
    /**
     * 是否稳定（true:稳定，false:不稳定）
     */
    val isStable: Boolean,
    /**
     * 预测结果
     */
    val predictionResult: String? = null,
    /**
     * 分析参数（JSON格式存储分析使用的参数）
     */
    val analysisParameters: String,
    /**
     * 分析报告路径
     */
    val analysisReport: String? = null,
    /**
     * 创建时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val createTime: String,
    /**
     * 更新时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val updateTime: String
)